查看原文
其他

一个月学会Python的Quora指南和资料放送

2017-12-22 易生信 生信宝典

如何一个月学会使用Python

文章翻译自Quora上的回帖,略有改动。原文链接:https://www.quora.com/What-are-the-best-tips-for-learning-Python-within-one-month

第1周

谷歌搜索“Python programming fundamentals” (Python编程基础),选择一个较好的网站,并针对其中的教程部分进行阅读和练习。这需要一周每天8小时的学习和练习来加强你的理解。记住:不要死记句法规则,每当你需要某个句法并使用时,会自然而然地记住。不过,最开始,多看几遍也不为过。书读多遍,其义自见。

如果不想搜索,我们在小学生都学Python了,你还不知道怎么开始提供了不少教程。而且还有自写的Python系列简明教程,精简版。可以作为小册子读用。

语法查找的话有Python cookbook,这里有中文翻译版本http://python3-cookbook.readthedocs.io/zh_CN/latest/preface.html (书中的所有源代码也可在此书的前言页面获取)。

第2、3、3.5 周

选择一个课题并试着完成它。

有以下建议:

  1. 不要想的太多,选择一个基础的项目,或者google搜索“beginner python projects” (新手python课题)。Python生信练习题

  2. 不必记住句法规则,当遇到困难时上网搜索便可得到提示。

  3. 使用IDE (Integrated Development Environment) (可以更简单的debug以及运行程序)。如PyCharm、Jupyter notebook。

  4. 将项目拆分为几个小的部分。

    例如如果你要做一个计算器,那么:

    (1)先设想界面,在深入到各个按钮。

    (2)将加减乘除等功能放入到相应按钮中。

  5. 可以借助Stackoverflow等网站。请在理解内容的基础上进行复制粘贴。

  6. 这个过程会比较艰辛,需要有毅力来强迫自己解决遇到的问题。

    当遇到难题时:

    (1)使用搜索引擎,注意输入更明确的搜索字段。

    (2)如果不没能搜索出答案,可以把问题放到论坛上去。如何提问

  7. 编程时适当休息,转换心情。

  8. 花时间学一下版本控制 (version control) 的基础,推荐git这个网站。

  9. 慢慢学习如何debug。个人认为最好的debug,是打印出程序运行的关键过程,查看每一步是否符合预期。

  10. 在编写程序前,确保自己已经有了实际理论解决方案。可以事先笔头画出问题的解决方案流程。

  11. 编写完程序后,试着花几个小时来测试并从中改进学习。在一个小问题上,不断拓展,就可以深入。

  12. 当一个难题解决不了时,不要气馁。先去做别的部分,再返回来重新思考。

第3.5/4 周

首先保证程序没有运行BUG,然后再看有没有结果BUG

如果你还没有完成此项目:

(1)给自己更多的时间。

(2)优先处理重要的编程部分。

恭喜你,对于只是通过读tutorial学习python却收获甚少的人来说,你已经超越他们了,或许比1、2年级的CS本课程还要领先。

之后可以通过学习数据库的工作原理以及python构架来提高自己的手法。

学习的过程大部分是程序写作和调试,想不想有个后盾呢?


回复中推荐的网络资源比较多,这就不列出来了。因为大部分我也没看过,适不适合初学也不好评价。

今天收到Coursera的邮件,列出了2017年最高评分的系列课程,计算机系列有三个,都跟Python有关:Fundamentals of Computing (编程语言使用Python,前两部分都是关于Python交互式编程), Algorithms (Python作为一个必修语言), Python for Everybody, 有时间的可以去看看 (https://www.coursera.org)。

搜索资料的过程中,不小心发现了这么一个神奇的Github库,里面包含了很多免费,大部分优质的书籍,部分相关的列举如下 (可点击的都是生信宝典之前发过的文章,夹杂私货),读过的付一点心得体会。可直接访问最后的网址跳到原网页,或点击阅读原文,每个链接都可点。

Awk

Sed

Bash

Vim

  • 不用Linux也可以的强大文本处理方法 (Vim操作)

  • Vim Manual(中文版)

  • 大家來學 VIM

  • A Byte of Vim

  • Learn Vim Progressively

  • Learn Vimscript the Hard Way

  • Use Vim Like A Pro - Tim Ottinger

  • Vi Improved — Vim - Steve Oualline (PDF)

  • Vim Recipes (PDF)

  • Vim Regular Expressions 101

C

  • 个人认为最好的还是The C Programming Language,经典中的经典。

  • A Tutorial on Pointers and Arrays in C - Ted Jensen (PDF, Zipped HTML)

  • Beej’s Guide to C Programming - B. Hall

  • Beej’s Guide to Network Programming - Using Internet Sockets - B. Hall

  • Build Your Own Lisp

  • C for Python Programmers - Carl Burch (Python用户可读,比较着学,更有利于提高)

  • C Programming - Wikibooks

  • C Programming Boot Camp - Paul Gribble

  • Deep C

  • Essential C (PDF)

  • Everything you need to know about pointers in C - Peter Hosey

  • Functional C (1997) - Pieter H. Hartel, Henk Muller (PDF)

  • Learn to Code With C - The MagPi Essentials (PDF)

  • Modern C (PDF)

Markdown

  • 应该学习的标记语言,写文档,很方便。

  • Learn Markdown - Sammy P., Aaron O. (PDF) (EPUB) (MOBI)

  • Markdown 快速入门

  • Markdown 简明教程

  • Markdown 语法说明

  • 献给写作者的 Markdown 新手指南

Octave

  • Octave Programming (Andrew Ng的机器学习课使用的语言,开源版MatLab,学一点当个乐子)

Python

  • Python学习极简教程 (一)(我的教程尽快更新到Python3)

  • Django 1.8 中文文档

  • Django book 2.0

  • Python 3 文档(简体中文) 3.2.2 documentation

  • Python Cookbook第三版 (作者:David Beazley, Brian K.Jones 翻译:熊能)

  • Python 中文学习大本营

  • Python之旅 (作者:Ethan)

  • Python教程 - 廖雪峰的官方网站

  • 像计算机科学家一样思考Python (Downey教授的Think系列书都是不错的,讲解简单清晰) (中英对照版 作者:Allen B. Downey 翻译:大胖哥)

  • 深入 Python 3

  • 笨办法学 Python

  • 简明 Python 教程 (很方便的小册子) (作者:Swaroop C H 译者:沈洁元、漠伦)

  • 20 Python Libraries You Aren’t Using (But Should) 

  • A Beginner’s Python Tutorial

  • A Byte of Python (3.x) (HTML, PDF, EPUB, Mobi)

  • A Guide to Python’s Magic Methods - Rafe Kettler

  • A Whirlwind Tour of Python - Jake VanderPlas (PDF) (EPUB, MOBI)

  • Automate the Boring Stuff - Al Sweigart

  • Biopython (用到了查查就好) (PDF)

  • Build applications in Python the antitextbook (3.x) (HTML, PDF, EPUB, Mobi)

  • Building Machine Learning Systems with Python - Willi Richert & Luis Pedro Coelho, Packt.

  • Building Skills in Object-Oriented Design (Python) (PDF) (2.1.1)

  • Building Skills in Python (PDF) (2.6)

  • Code Like a Pythonista: Idiomatic Python

  • CodeCademy Python

  • Composing Programs (3.x)

  • Data Structures and Algorithms in Python - B. R. Preiss (PDF)

  • Dive into Python 3 - Mark Pilgrim (3.0)

  • From Python to NumPy

  • Full Stack Python

  • Functional Programming in Python

  • Fundamentals of  Python Programming - Richard L. Halterman (PDF) (3.2)

  • Google’s Python Style Guide

  • Hacking Secret Cyphers with Python - Al Sweigart (3.3)

  • Hadoop with Python

  • High Performance Python (PDF)

  • Hitchhiker’s Guide to Python! (2.6)

  • How to Make Mistakes in Python - Mike Pirnat (PDF) (1st edition)

  • How to Think Like a Computer Scientist: Learning with Python, Interactive Edition (推荐) (3.2)

  • Think Python (Think系列) - Allen B. Downey (2.x & 3.0)

  • Intermediate Python - Muhammad Yasoob Ullah Khalid (1st edition)

  • Introduction to Programming with Python (3.3)

  • Introduction to Python - Kracekumar (2.7.3)

  • Learn Python, Break Python

  • Learn Python in Y minutes

  • Learn Python The Hard Way (2.5 - 2.6)

  • Learn to Program Using Python - Cody Jackson (PDF)

  • Learning Python - Fabrizio Romano, Packt. (Just fill the fields with any values)

  • Lectures on scientific computing with python - J.R. Johansson (2.7)

  • Modeling Creativity: Case Studies in Python - Tom D. De Smedt (PDF)

  • Natural Language Processing with Python (3.x)

  • Non-Programmer’s Tutorial for Python 3 (3.3)

  • Python Cookbook - David Beazley

  • Python Data Science Handbook - Jake VanderPlas (HTML, Jupyter Notebooks)

  • Python for Everybody Exploring Data Using Python 3 - Charles Severance (PDF, EPUB, HTML)

  • Python for you and me (3.x)

  • Snake Wrangling For Kids (3.x)

  • Suporting Python 3: An In-Depth Guide (2.6 - 2.x & 3.1 - 3.x)

  • The Standard Python Library - Fredrik Lundh

  • Think Complexity - Allen B. Downey (2nd Edition) (PDF, HTML)

  • Pandas,让Python像R一样处理数据,但快

  • Learn Pandas (版本老了,有新的付费书(Python for data analysis),网上也许有电子版) - Hernan Rojas (0.18.1)

R

  • 在R中赞扬下努力工作的你,奖励一份CheetShet

  • R语言学习 - 入门环境Rstudio

  • R语言学习 - 热图绘制 (heatmap)

  • R语言学习 - 基础概念和矩阵操作

  • 153分钟学会 R (PDF)

  • R 导论 (《An Introduction to R》中文版) (PDF)

  • 用 R 构建 Shiny 应用程序 (《Building ‘Shiny’ Applications with R》中文版)

  • 统计学与 R 读书笔记 (PDF)

  • Advanced R Programming (大神之作) - Hadley Wickham

  • An Introduction to Statistical Learning with Applications in R - Gareth James, Daniela Witten, Trevor Hastie and Robert Tibshirani (PDF)

  • Cookbook for R - Winston Chang

  • Introduction to Probability and Statistics Using R - G. Jay Kerns (PDF)

  • Learning Statistics with R - Daniel Navarro

  • Machine Learning with R - Brett Lantz, Packt. 

  • ModernDive - Chester Ismay and Albert Y. Kim

  • Practical Regression and Anova using R - Julian J. Faraway (PDF)

  • R for Data Science - Garrett Grolemund and Hadley Wickham

  • R Language for Programmers - John D. Cook

  • R Packages - Hadley Wickham

  • R Practicals (PDF)

  • R Programming

  • R Programming for Data Science (Needs valid email)

  • R Succinctly, Syncfusion (PDF, Kindle)

  • The caret Package - Max Kuhn

  • The R Inferno (短小精悍) - Patrick Burns (PDF)

  • The R Language

  • The R Manuals

  • Tidy Text Mining with R - Julia Silge and David Robinson

Regular Expressions

  • Learn Regex The Hard Way - Zed. A. Shaw

  • RexEgg

  • The 30 Minute Regex Tutorial - Jim Hollenhorst

  • The Bastards Book of Regular Expressions: Finding Patterns in Everyday Text - Dan Nguyen

  • 正则表达式-菜鸟教程

  • 正则表达式30分钟入门教程

Cloud Computing

  • Monitoring Modern Infrastructure (account required)

  • Multi-tenant Applications for the Cloud, 3rd Edition

  • OpenStack Operations Guide

Datamining

  • A Programmer’s Guide to Data Mining - Ron Zacharski (Draft)

  • Data Jujitsu: The Art of Turning Data into Product 

  • Data Mining Algorithms In R

  • Internet Advertising: An Interplay among Advertisers, Online Publishers, Ad Exchanges and Web Users (PDF)

  • Introduction to Data Science - Jeffrey Stanton

  • Mining of Massive Datasets

  • School of Data Handbook

  • Theory and Applications for Advanced Text Mining

Machine Learning

  • 一部分,还有其他比较适合初级学习的,如集体智慧编程 (Programming Collective Intelligence)

  • A Brief Introduction to Neural Networks

  • A Course in Machine Learning (PDF)

  • A First Encounter with Machine Learning (PDF)

  • An Introduction to Statistical Learning - Gareth James, Daniela Witten, Trevor Hastie and Robert Tibshirani

  • Bayesian Reasoning and Machine Learning

  • Deep Learning - Ian Goodfellow, Yoshua Bengio and Aaron Courville

  • Gaussian Processes for Machine Learning

  • Information Theory, Inference, and Learning Algorithms

  • Introduction to Machine Learning - Amnon Shashua

  • Learn Tensorflow - Jupyter Notebooks

  • Learning Deep Architectures for AI (PDF)

  • Machine Learning

  • Machine Learning, Neural and Statistical Classification

  • Neural Networks and Deep Learning

  • Probabilistic Models in the Study of Language (Draft, with R code)

  • Reinforcement Learning: An Introduction

  • The Elements of Statistical Learning - Trevor Hastie, Robert Tibshirani, and Jerome Friedman

  • The LION Way: Machine Learning plus Intelligent Optimization

  • The Python Game Book

Competitive Programming

  • Competitive Programmer’s Handbook - Antti Laaksonen (PDF)

  • Competitive Programming, 1st Edition (PDF)

Algorithms & Data Structures

  • 算法部分还是了解都有什么,找一下比较有意思的帖子看起,刘未鹏的http://mindhacks.cn/是很好的入口,很好的思维,也推荐了很多心理、逻辑的书。

  • A Field Guide To Genetic Programming

  • Algorithmic Graph Theory

  • Algorithms, 4th Edition - Robert Sedgewick and Kevin Wayne

  • Algorithms and Automatic Computing Machines (1963) - B. A. Trakhtenbrot

  • Algorithms and Complexity (PDF)

  • Algorithms Course Materials - Jeff Erickson

  • Analysis and Design of Algorithms - Sandeep Sen, IIT Delhi

  • Animated Algorithm and Data Structure Visualization (Resource)

  • Annotated Algorithms in Python: Applications in Physics, Biology, and Finance - Massimo di Pierro

  • Binary Trees (PDF)

  • Clever Algorithms

  • CS Unplugged: Computer Science without a computer

  • Data Structures - Prof. Subhashis Banerjee, IIT Delhi

  • Data Structures (Into Java) - Paul N. Hilfinger (PDF)

  • Data Structures and Algorithms: Annotated Reference with Examples - G. Barnett and L. Del Tongo (PDF)

  • Think Complexity (PDF)

更多的没有列出,免费书地址或点击阅读原文:https://github.com/EbookFoundation/free-programming-books

精品回顾

画图三字经 生信视频 生信系列教程 心得体会 癌症数据库 

高通量分析 Linux Python 在线画图

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存